package cn.kgc.spring.aop;

import org.springframework.aop.MethodBeforeAdvice;

import java.lang.reflect.Method;
import java.util.Arrays;

/**
 * @author: mosin
 * @version: v1.0  2022/7/4
 * 通知: 指代除核心业务之外的所有功能  额外功能
 * 通知所处的位置不同  通知的类型也不同
 * 前置通知： 在核心业务之前添加的额外功能
 * 后置通知
 * 异常通知
 * 最终通知
 * 环绕通知
 */
public class Before implements MethodBeforeAdvice {


    // 添加需要增强的业务 无需手动调用方法执行
    @Override
    public void before(Method method, Object[] args, Object target) throws Throwable {
        System.out.println("-------------前置通知开始-----------------");
        System.out.println("前置通知添加的方法名是:"+method.getName());
        System.out.println("前置通知添加的方法的参数列表："+ Arrays.toString(args));
        System.out.println("-------------前置通知结束-----------------");
    }

}
